package com.example.database.demo.pojo.SFPojo.requestData.PlaceOrder;

import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author xionglin
 */
@NoArgsConstructor
@Data
public class RequestParms {
    /**
     * 托寄物信息(必填)
     */
    @NotEmpty
    private List<CargoDetails> cargoDetails;
    /**
     * 收寄双方信息（必填）
     */
    @NotEmpty
    private List<ContactInfoList> contactInfoList;
    /**
     * 报关信息，查看《海关配置流程指引》（非必填）
     */
    private CustomsInfo customsInfo;
    /**
     * 快件产品类别， 支持附录 《快件产品类别表》 的产品编码值，仅可使用与顺丰销售约定的快件产品（必填）
     */
    @NotNull
    private BigDecimal expressTypeId = BigDecimal.ONE;
    /**
     * 扩展属性（非必填）
     */
    private List<ExtraInfoList> extraInfoList;
    /**
     * 快件自取，支持以下值： 1：客户同意快件自取 0：客户不同意快件自取
     */
    @NotNull
    private BigDecimal isOneselfPickup = BigDecimal.ZERO;
    /**
     * 响应报文的语言， 缺省值为zh-CN，目前支持以下值zh-CN 表示中文简体， zh-TW或zh-HK或 zh-MO表示中文繁体， en表示英文
     */
    private String language = "zh-CN";
    /**
     * 客户订单号，重复使用订单号时返回第一次下单成功时的运单信息（必填）
     */
    @NotNull
    private String orderId;
    /**
     * 包裹数，一个包裹对应一个运单号；若包裹数大于1，则返回一个母运单号和N-1个子运单号（非必填）
     */
    private BigDecimal parcelQty = BigDecimal.ONE;
    /**
     * 付款方式，支持以下值： 1:寄方付 2:收方付 3:第三方付（非必填）
     */
    private BigDecimal payMethod = BigDecimal.ONE;
    /**
     * 订单货物总重量（郑州空港海关必填）， 若为子母件必填， 单位千克， 精确到小数点后3位，如果提供此值， 必须>0 (子母件需>6)
     */
    private BigDecimal totalWeight;
    /**
     * 顺丰月结卡号 月结支付时传值，现结不需传值；
     */
    private String monthlyCard = "7550767263";
    private String cargoDesc;
    private List<ServiceFee> serviceList;
    private BigDecimal totalLength;
    private BigDecimal totalWidth;
    private BigDecimal totalHeight;
    private BigDecimal volume;
    private String totalNetWeight;
    private Date sendStartTm;
    private String isDocall = "0";
    private BigDecimal isSignBack;
}
